package com.yequan.designpattern.monitor.code;

import java.util.ArrayList;
import java.util.List;

/**
 * 事件源
 *
 * @author yequan
 * @date 2019/12/10
 */
public class Programmer {

    /**
     * 监听器列表
     */
    private List<ActionEventListener> listenerList = new ArrayList<>();

    /**
     * 添加一个监听器
     */
    public void addListener(ActionEventListener listener) {
        listenerList.add(listener);
    }

    ActionEvent event = new Code();

    /**
     * 修改代码
     */
    public void updateCode() {
        if (((Code) event).isUpdate()) {
            System.out.println("猴子修改代码");
            for (ActionEventListener listener : listenerList) {
                listener.actionPerformed(event);
            }
        }
    }

}
